Thực đơn
Cú pháp ngôn ngữ C Thứ tự đánh giáMột trình dịch C có thể đánh giá các biểu thức theo thứ tự bất kì giữa dãy các điểm. Dãy các điểm được định nghĩa bởi:
&&
) và phép hoặc (||
).A?B:C
): Giá trị của biểu thức A được đánh giá trước. Nếu A là đúng thì B sẽ được đánh giá bỏ qua biểu thức C. Nếu A sai thì B bị bỏ qua và chỉ có C được đánh giá tiếp.Lưu ý: Các biểu thức đứng trước trong một dãy điểm sẽ luôn luôn được đánh giá trước các biểu thức theo sau. Trong trường hợp đánh giá của các ngắn mạch, biểu thức thứ hai có thể sẽ không cần được đánh giá. Thí dụ, trong biểu thức (a() || b())
, nếu a()
trả về giá trị đúng thì trình dịch sẽ không cần đánh giá b()
nữa (vì lúc đó đã đủ để kết luận mệnh đề (a() || b())
là đúng). Trong thực hành viết mã, nhiều lập trình viên thiếu kinh nghiệm rất dễ bị lọt vào tình huống rằng trình dịch không chịu tiến hành những gì họ muốn mà bỏ qua nhiều bước dẫn tới các kết quả không chính xác mặc dù về lô gíc họ không hề sai sót. Trong trường hợp như vậy, cách tốt nhất là hãy xem lại thật kỹ các mệnh đề Bool và đặc tính đánh giá này của trình dịch. Các lỗi này thuộc loại rất khó tìm ra bởi vì nó hoàn toàn chính xác về mặt cú pháp, về mặt toán học và ngay cả về mặt thuật toán xử lý và rất dễ dẫn đến nhiều kết quả sai về mặt tính toán mà người lập trình không ngờ. Đây cũng là điểm khác nhau giữa ngôn ngữ toán học thuần túy (dùng trong các mã giả --pseudo code ) và thực tế của ngôn ngữ lập trình.
Thực đơn
Cú pháp ngôn ngữ C Thứ tự đánh giáLiên quan
Cú Cúp FA Cúp bóng đá U-23 châu Á 2024 Cúp bóng đá trong nhà châu Á 2024 Cúp bóng đá châu Á Cúp bóng đá U-23 châu Á 2022 Cúp bóng đá châu Á 2023 Cúp bóng đá Nam Mỹ Cúc Tịnh Y Cúp bóng đá U-23 châu ÁTài liệu tham khảo
WikiPedia: Cú pháp ngôn ngữ C http://www.math.grin.edu/~stone/courses/languages/... http://www.difranco.net/cop2220/op-prec.htm http://www.cs.cf.ac.uk/Dave/C/CE.html